/*
 * Decompiled with CFR 0.150.
 * 
 * Could not load the following classes:
 *  cn.hutool.core.util.NumberUtil
 *  cn.hutool.core.util.ObjectUtil
 *  cn.hutool.core.util.StrUtil
 *  com.alibaba.fastjson.JSON
 *  de.felixroske.jfxsupport.FXMLController
 *  javafx.beans.value.ChangeListener
 *  javafx.beans.value.ObservableValue
 *  javafx.collections.FXCollections
 *  javafx.collections.ObservableList
 *  javafx.event.EventHandler
 *  javafx.fxml.FXML
 *  javafx.fxml.Initializable
 *  javafx.scene.Node
 *  javafx.scene.control.Alert
 *  javafx.scene.control.Alert$AlertType
 *  javafx.scene.control.Button
 *  javafx.scene.control.ScrollPane
 *  javafx.scene.control.TableCell
 *  javafx.scene.control.TableColumn
 *  javafx.scene.control.TableView
 *  javafx.scene.control.TextField
 *  javafx.scene.control.cell.PropertyValueFactory
 *  javafx.scene.input.KeyCode
 *  javafx.scene.input.KeyEvent
 *  javafx.scene.layout.AnchorPane
 *  javafx.scene.layout.VBox
 *  javafx.scene.text.Text
 *  javafx.stage.Stage
 *  javafx.util.Callback
 *  org.springframework.beans.factory.annotation.Autowired
 */
package com.gys.controller.physicalCount;

import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.gys.common.business.PhysicalCountUtil;
import com.gys.common.data.HttpJson;
import com.gys.common.enums.ProForm;
import com.gys.common.util.CommonUtil;
import com.gys.common.util.ExcelUtil;
import com.gys.common.util.SpringUtil;
import com.gys.controller.BaseController;
import com.gys.controller.physicalCount.ChoosePhysicalProductController;
import com.gys.controller.physicalCount.PhysicalCountController;
import com.gys.data.physicalCount.GetPhysicalCountInData;
import com.gys.data.physicalCount.GetPhysicalCountOutData;
import com.gys.view.physicalCount.AddPhysicalDiffView;
import de.felixroske.jfxsupport.FXMLController;
import java.lang.reflect.Method;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.ResourceBundle;
import java.util.Timer;
import java.util.TimerTask;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.util.Callback;
import org.springframework.beans.factory.annotation.Autowired;

@FXMLController
public class AddPhysicalDiffController
extends BaseController
implements Initializable {
    @FXML
    private AnchorPane anchorPane;
    @FXML
    private ScrollPane scrollPane;
    @FXML
    private VBox vBox;
    @FXML
    private TextField searchProId;
    @FXML
    private TextField searchBatchNo;
    @FXML
    private Button saveButton;
    @FXML
    private TableView<GetPhysicalCountOutData> tableView;
    @FXML
    private TableColumn<GetPhysicalCountOutData, Integer> index;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gspcProId;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> proName;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gsplArea;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gsplGroup;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gsplShelf;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gsplStorey;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gsplSeat;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> batchNo;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gsppPriceNormal;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> vaild;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gspcDate;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gspcType;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> stockQty;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gspcQty;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gspcdDiffFirstQty;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gspcdPcSecondQty;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> proSpecs;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> proUnit;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> proFactoryName;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> proPlace;
    @FXML
    private TableColumn<GetPhysicalCountOutData, String> gspcStatus;
    private ObservableList<GetPhysicalCountOutData> observableTableList = FXCollections.observableArrayList(new ArrayList());
    private List<GetPhysicalCountOutData> allDataList = new ArrayList<GetPhysicalCountOutData>();
    private List<GetPhysicalCountOutData> tempDataList = new ArrayList<GetPhysicalCountOutData>();
    private Timer timer = new Timer();
    @Autowired
    private PhysicalCountController physicalCountController;
    @Autowired
    private ChoosePhysicalProductController choosePhysicalProductController;

    public void initialize(URL location, ResourceBundle resources) {
        this.anchorPane.setPrefWidth(this.getContentWidth());
        this.anchorPane.setPrefHeight(this.getContentHeight());
        this.scrollPane.setPrefWidth(this.getContentWidth());
        this.scrollPane.setPrefHeight(this.getContentHeight());
        this.vBox.setPrefWidth(this.getContentWidth());
        this.vBox.setPrefHeight(this.getContentHeight());
        this.tableView.setPrefWidth(this.getContentWidth());
        this.init();
    }

    @Override
    public void init() {
        if (ObjectUtil.isNull(this.scrollPane)) {
            return;
        }
        if (this.physicalCountController.isPhysicalDiffView()) {
            this.saveButton.setDisable(true);
        } else {
            this.saveButton.setDisable(false);
        }
        this.searchProId.setText("");
        this.searchBatchNo.setText("");
        GetPhysicalCountInData inData = new GetPhysicalCountInData();
        if (this.physicalCountController.getRadioAll().isSelected()) {
            inData.setGspcDate(this.physicalCountController.getAllGspcDate().getText());
            inData.setGspcType("1");
        }
        if (this.physicalCountController.getRadioSingle().isSelected()) {
            inData.setGspcDate(this.physicalCountController.getSingleGspcDate().getText());
            inData.setGspcType("2");
        }
        HttpJson rsp = PhysicalCountUtil.selectPhysicalDiff(inData);
        Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", null);
        if (rsp.isSuccess()) {
            List<GetPhysicalCountOutData> dataList = JSON.parseArray((String)rsp.getMsg(), GetPhysicalCountOutData.class);
            int index = 1;
            for (GetPhysicalCountOutData data : dataList) {
                data.setIndex(index);
                if ("1".equals(data.getGspcType())) {
                    data.setGspcType("\u5168\u573a\u76d8\u70b9");
                } else {
                    data.setGspcType("\u5355\u54c1\u76d8\u70b9");
                }
                data.setProForm(ProForm.getName(data.getProForm()));
                if ("1".equals(data.getGspcStatus())) {
                    data.setGspcStatus("\u5df2\u5ba1\u6838");
                } else {
                    data.setGspcStatus("\u672a\u5ba1\u6838");
                }
                ++index;
            }
            this.allDataList = dataList;
            this.observableTableList.clear();
            this.observableTableList = FXCollections.observableArrayList((Collection)dataList);
            this.bingTableCell();
            if (this.physicalCountController.isPhysicalDiffView()) {
                this.clearTableViewEdit(this.gspcdPcSecondQty);
            } else {
                this.tableViewText(this.gspcdPcSecondQty);
            }
            this.tableView.setItems(this.observableTableList);
        } else {
            alert.setContentText(rsp.getMsg());
            alert.showAndWait();
        }
        this.timer.schedule(new TimerTask(){

            @Override
            public void run() {
                AddPhysicalDiffView view = SpringUtil.getBean(AddPhysicalDiffView.class);
                Stage stage = (Stage)view.getView().getScene().getWindow();
                stage.getScene().setOnKeyReleased((EventHandler)new EventHandler<KeyEvent>(){

                    public void handle(KeyEvent event) {
                        if (event.getCode() == KeyCode.F2) {
                            AddPhysicalDiffController.this.search();
                            return;
                        }
                        if (event.getCode() == KeyCode.F9 && !AddPhysicalDiffController.this.saveButton.isDisabled()) {
                            AddPhysicalDiffController.this.save();
                            return;
                        }
                        if (event.getCode() == KeyCode.F8) {
                            AddPhysicalDiffController.this.export();
                        }
                    }
                });
            }
        }, 1000L);
    }

    private void bingTableCell() {
        this.index.setCellValueFactory((Callback)new PropertyValueFactory(this.index.getId()));
        this.gspcProId.setCellValueFactory((Callback)new PropertyValueFactory(this.gspcProId.getId()));
        this.proName.setCellValueFactory((Callback)new PropertyValueFactory(this.proName.getId()));
        this.gsplArea.setCellValueFactory((Callback)new PropertyValueFactory(this.gsplArea.getId()));
        this.gsplGroup.setCellValueFactory((Callback)new PropertyValueFactory(this.gsplGroup.getId()));
        this.gsplShelf.setCellValueFactory((Callback)new PropertyValueFactory(this.gsplShelf.getId()));
        this.gsplStorey.setCellValueFactory((Callback)new PropertyValueFactory(this.gsplStorey.getId()));
        this.gsplSeat.setCellValueFactory((Callback)new PropertyValueFactory(this.gsplSeat.getId()));
        this.batchNo.setCellValueFactory((Callback)new PropertyValueFactory(this.batchNo.getId()));
        this.gsppPriceNormal.setCellValueFactory((Callback)new PropertyValueFactory(this.gsppPriceNormal.getId()));
        this.vaild.setCellValueFactory((Callback)new PropertyValueFactory(this.vaild.getId()));
        this.gspcDate.setCellValueFactory((Callback)new PropertyValueFactory(this.gspcDate.getId()));
        this.gspcType.setCellValueFactory((Callback)new PropertyValueFactory(this.gspcType.getId()));
        this.stockQty.setCellValueFactory((Callback)new PropertyValueFactory(this.stockQty.getId()));
        this.gspcQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gspcQty.getId()));
        this.gspcdDiffFirstQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gspcdDiffFirstQty.getId()));
        this.gspcdPcSecondQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gspcdPcSecondQty.getId()));
        this.proSpecs.setCellValueFactory((Callback)new PropertyValueFactory(this.proSpecs.getId()));
        this.proUnit.setCellValueFactory((Callback)new PropertyValueFactory(this.proUnit.getId()));
        this.proFactoryName.setCellValueFactory((Callback)new PropertyValueFactory(this.proFactoryName.getId()));
        this.proPlace.setCellValueFactory((Callback)new PropertyValueFactory(this.proPlace.getId()));
        this.gspcStatus.setCellValueFactory((Callback)new PropertyValueFactory(this.gspcStatus.getId()));
    }

    private void tableViewText(TableColumn<GetPhysicalCountOutData, String> tableColumn) {
        tableColumn.setCellFactory(tc -> {
            final TextField field = new TextField();
            TableCell<GetPhysicalCountOutData, String> cell = new TableCell<GetPhysicalCountOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        field.setText(chuzhi);
                        this.setGraphic((Node)field);
                    }
                }
            };
            field.textProperty().addListener((ChangeListener)new ChangeListener<String>(){
                final TableCell val_cell;
                final TextField val_field;
                {
                    this.val_cell = cell;
                    this.val_field = field;
                }

                public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
                    int rank = this.val_cell.getIndex();
                    String cloumName = this.val_cell.getId();
                    String value = this.val_field.getText();
                    GetPhysicalCountOutData outData = (GetPhysicalCountOutData)AddPhysicalDiffController.this.observableTableList.get(rank);
                    String methodName = CommonUtil.getSetMethod(cloumName);
                    try {
                        Method method = GetPhysicalCountOutData.class.getMethod(methodName, String.class);
                        method.invoke(outData, value);
                    }
                    catch (Exception ex) {
                        throw new RuntimeException("\u6ca1\u6709\u65b9\u6cd5" + methodName);
                    }
                }
            });
            return cell;
        });
    }

    private void clearTableViewEdit(TableColumn<GetPhysicalCountOutData, String> tableColumn) {
        tableColumn.setCellFactory(tc -> {
            TableCell<GetPhysicalCountOutData, String> cell = new TableCell<GetPhysicalCountOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        Text text = new Text();
                        text.setText(chuzhi);
                        this.setGraphic((Node)text);
                    }
                }
            };
            return cell;
        });
    }

    @FXML
    private void search() {
        String proId = this.searchProId.getText().trim();
        String batchNo = this.searchBatchNo.getText().trim();
        List<GetPhysicalCountOutData> dataList = new ArrayList();
        if (StrUtil.isBlank((CharSequence)proId) && StrUtil.isBlank((CharSequence)batchNo)) {
            dataList = this.allDataList;
        } else {
            this.tempDataList = new ArrayList<GetPhysicalCountOutData>();
            for (GetPhysicalCountOutData data : this.allDataList) {
                if (StrUtil.isNotBlank((CharSequence)proId) && StrUtil.isBlank((CharSequence)batchNo) && proId.equals(data.getGspcProId())) {
                    this.tempDataList.add(data);
                    continue;
                }
                if (StrUtil.isBlank((CharSequence)proId) && StrUtil.isNotBlank((CharSequence)batchNo) && batchNo.equals(data.getBatchNo())) {
                    this.tempDataList.add(data);
                    continue;
                }
                if (!StrUtil.isNotBlank((CharSequence)proId) || !StrUtil.isNotBlank((CharSequence)batchNo) || !proId.equals(data.getGspcProId()) || !batchNo.equals(data.getBatchNo())) continue;
                this.tempDataList.add(data);
            }
            dataList = this.tempDataList;
        }
        this.observableTableList.clear();
        this.observableTableList = FXCollections.observableArrayList(dataList);
        this.bingTableCell();
        if (this.physicalCountController.isPhysicalDiffView()) {
            this.clearTableViewEdit(this.gspcdPcSecondQty);
        } else {
            this.tableViewText(this.gspcdPcSecondQty);
        }
        this.tableView.setItems(this.observableTableList);
    }

    @FXML
    private void save() {
        this.observableTableList.clear();
        this.observableTableList = FXCollections.observableArrayList(this.allDataList);
        this.bingTableCell();
        if (this.physicalCountController.isPhysicalDiffView()) {
            this.clearTableViewEdit(this.gspcdPcSecondQty);
        } else {
            this.tableViewText(this.gspcdPcSecondQty);
        }
        this.tableView.setItems(this.observableTableList);
        Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", null);
        for (GetPhysicalCountOutData data : this.observableTableList) {
            if (StrUtil.isBlank((CharSequence)data.getGspcdPcSecondQty())) {
                alert.setContentText(StrUtil.format((CharSequence)"\u7b2c{}\u884c\u5546\u54c1({})\u6279\u53f7({})\u521d\u76d8\u4fee\u6539\u4e0d\u80fd\u4e3a\u7a7a", (Object[])new Object[]{data.getIndex(), data.getGspcProId(), data.getBatchNo()}));
                alert.showAndWait();
                return;
            }
            if (!NumberUtil.isInteger((String)data.getGspcdPcSecondQty())) {
                alert.setContentText(StrUtil.format((CharSequence)"\u7b2c{}\u884c\u5546\u54c1({})\u6279\u53f7({})\u521d\u76d8\u4fee\u6539\u683c\u5f0f\u4e0d\u6b63\u786e\u7f3a\uff0c\u5fc5\u987b\u662f\u6570\u5b57", (Object[])new Object[]{data.getIndex(), data.getGspcProId(), data.getBatchNo()}));
                alert.showAndWait();
                return;
            }
            if (!data.getGspcdPcSecondQty().startsWith("0") && !data.getGspcdPcSecondQty().contains(".")) continue;
            alert.setContentText(StrUtil.format((CharSequence)"\u7b2c{}\u884c\u5546\u54c1({})\u6279\u53f7({})\u521d\u76d8\u4fee\u6539\u683c\u5f0f\u4e0d\u6b63\u786e\u7f3a\uff0c\u5fc5\u987b\u662f\u6570\u5b57", (Object[])new Object[]{data.getIndex(), data.getGspcProId(), data.getBatchNo()}));
            alert.showAndWait();
            return;
        }
        GetPhysicalCountInData inData = new GetPhysicalCountInData();
        inData.setGspcDate(this.physicalCountController.getAllGspcDate().getText());
        if (this.physicalCountController.getRadioAll().isSelected()) {
            inData.setGspcDate(this.physicalCountController.getAllGspcDate().getText());
            inData.setGspcType("1");
        }
        if (this.physicalCountController.getRadioSingle().isSelected()) {
            inData.setGspcDate(this.physicalCountController.getSingleGspcDate().getText());
            inData.setGspcType("2");
        }
        ArrayList<GetPhysicalCountInData> physicals = new ArrayList<GetPhysicalCountInData>();
        for (GetPhysicalCountOutData data : this.observableTableList) {
            GetPhysicalCountInData physical = new GetPhysicalCountInData();
            physical.setGspcdVoucherId(data.getGspcdVoucherId());
            physical.setGspcVoucherId(data.getGspcVoucherId());
            physical.setGspcRowNo(data.getGspcRowNo());
            physical.setGspcdPcSecondQty(data.getGspcdPcSecondQty());
            physical.setGspcdDiffSecondQty(StrUtil.toString((Integer.valueOf(data.getStockQty()) - Integer.valueOf(data.getGspcdPcSecondQty()))));
            physicals.add(physical);
        }
        inData.setPhysicals(physicals);
        HttpJson rsp = PhysicalCountUtil.updatePhysicalDiff(inData);
        if (rsp.isSuccess()) {
            this.anchorPane.getScene().getWindow().hide();
        } else {
            alert.setContentText(rsp.getMsg());
            alert.showAndWait();
        }
    }

    @FXML
    private void export() {
        this.observableTableList.clear();
        this.observableTableList = FXCollections.observableArrayList(this.allDataList);
        this.bingTableCell();
        if (this.physicalCountController.isPhysicalDiffView()) {
            this.clearTableViewEdit(this.gspcdPcSecondQty);
        } else {
            this.tableViewText(this.gspcdPcSecondQty);
        }
        this.tableView.setItems(this.observableTableList);
        List<String> columnName = Arrays.asList("\u5e8f\u53f7", "\u7f16\u7801", "\u540d\u79f0", "\u533a\u57df", "\u67dc\u7ec4", "\u8d27\u67b6", "\u5c42\u7ea7", "\u8d27\u4f4d", "\u6279\u53f7", "\u96f6\u552e\u4ef7", "\u6709\u6548\u671f", "\u76d8\u70b9\u65e5\u671f", "\u76d8\u70b9\u7c7b\u578b", "\u5e93\u5b58\u6570\u91cf", "\u76d8\u70b9\u6570\u91cf", "\u521d\u76d8\u5dee\u5f02", "\u521d\u76d8\u4fee\u6539", "\u590d\u76d8\u5dee\u5f02", "\u89c4\u683c", "\u5355\u4f4d", "\u5382\u5bb6", "\u4ea7\u5730", "\u72b6\u6001");
        List<String> columnId = Arrays.asList("index", "gspcProId", "proName", "gsplArea", "gsplGroup", "gsplShelf", "gsplStorey", "gsplSeat", "batchNo", "gsppPriceNormal", "vaild", "gspcDate", "gspcType", "stockQty", "gspcQty", "gspcdDiffFirstQty", "gspcdPcSecondQty", "gspcdDiffSecondQty", "proSpecs", "proUnit", "proFactoryName", "proPlace", "gspcStatus");
        boolean result = ExcelUtil.export("\u76d8\u70b9\u5dee\u5f02\u5546\u54c1", this.allDataList, columnName, columnId);
        if (result) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u5bfc\u51fa\u6210\u529f");
            alert.showAndWait();
        }
    }

    public AnchorPane getAnchorPane() {
        return this.anchorPane;
    }

    public ScrollPane getScrollPane() {
        return this.scrollPane;
    }

    public VBox getVBox() {
        return this.vBox;
    }

    public TextField getSearchProId() {
        return this.searchProId;
    }

    public TextField getSearchBatchNo() {
        return this.searchBatchNo;
    }

    public Button getSaveButton() {
        return this.saveButton;
    }

    public TableView<GetPhysicalCountOutData> getTableView() {
        return this.tableView;
    }

    public TableColumn<GetPhysicalCountOutData, Integer> getIndex() {
        return this.index;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGspcProId() {
        return this.gspcProId;
    }

    public TableColumn<GetPhysicalCountOutData, String> getProName() {
        return this.proName;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGsplArea() {
        return this.gsplArea;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGsplGroup() {
        return this.gsplGroup;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGsplShelf() {
        return this.gsplShelf;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGsplStorey() {
        return this.gsplStorey;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGsplSeat() {
        return this.gsplSeat;
    }

    public TableColumn<GetPhysicalCountOutData, String> getBatchNo() {
        return this.batchNo;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGsppPriceNormal() {
        return this.gsppPriceNormal;
    }

    public TableColumn<GetPhysicalCountOutData, String> getVaild() {
        return this.vaild;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGspcDate() {
        return this.gspcDate;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGspcType() {
        return this.gspcType;
    }

    public TableColumn<GetPhysicalCountOutData, String> getStockQty() {
        return this.stockQty;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGspcQty() {
        return this.gspcQty;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGspcdDiffFirstQty() {
        return this.gspcdDiffFirstQty;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGspcdPcSecondQty() {
        return this.gspcdPcSecondQty;
    }

    public TableColumn<GetPhysicalCountOutData, String> getProSpecs() {
        return this.proSpecs;
    }

    public TableColumn<GetPhysicalCountOutData, String> getProUnit() {
        return this.proUnit;
    }

    public TableColumn<GetPhysicalCountOutData, String> getProFactoryName() {
        return this.proFactoryName;
    }

    public TableColumn<GetPhysicalCountOutData, String> getProPlace() {
        return this.proPlace;
    }

    public TableColumn<GetPhysicalCountOutData, String> getGspcStatus() {
        return this.gspcStatus;
    }

    public ObservableList<GetPhysicalCountOutData> getObservableTableList() {
        return this.observableTableList;
    }

    public List<GetPhysicalCountOutData> getAllDataList() {
        return this.allDataList;
    }

    public List<GetPhysicalCountOutData> getTempDataList() {
        return this.tempDataList;
    }

    public Timer getTimer() {
        return this.timer;
    }

    public PhysicalCountController getPhysicalCountController() {
        return this.physicalCountController;
    }

    public ChoosePhysicalProductController getChoosePhysicalProductController() {
        return this.choosePhysicalProductController;
    }

    public void setAnchorPane(AnchorPane anchorPane) {
        this.anchorPane = anchorPane;
    }

    public void setScrollPane(ScrollPane scrollPane) {
        this.scrollPane = scrollPane;
    }

    public void setVBox(VBox vBox) {
        this.vBox = vBox;
    }

    public void setSearchProId(TextField searchProId) {
        this.searchProId = searchProId;
    }

    public void setSearchBatchNo(TextField searchBatchNo) {
        this.searchBatchNo = searchBatchNo;
    }

    public void setSaveButton(Button saveButton) {
        this.saveButton = saveButton;
    }

    public void setTableView(TableView<GetPhysicalCountOutData> tableView) {
        this.tableView = tableView;
    }

    public void setIndex(TableColumn<GetPhysicalCountOutData, Integer> index) {
        this.index = index;
    }

    public void setGspcProId(TableColumn<GetPhysicalCountOutData, String> gspcProId) {
        this.gspcProId = gspcProId;
    }

    public void setProName(TableColumn<GetPhysicalCountOutData, String> proName) {
        this.proName = proName;
    }

    public void setGsplArea(TableColumn<GetPhysicalCountOutData, String> gsplArea) {
        this.gsplArea = gsplArea;
    }

    public void setGsplGroup(TableColumn<GetPhysicalCountOutData, String> gsplGroup) {
        this.gsplGroup = gsplGroup;
    }

    public void setGsplShelf(TableColumn<GetPhysicalCountOutData, String> gsplShelf) {
        this.gsplShelf = gsplShelf;
    }

    public void setGsplStorey(TableColumn<GetPhysicalCountOutData, String> gsplStorey) {
        this.gsplStorey = gsplStorey;
    }

    public void setGsplSeat(TableColumn<GetPhysicalCountOutData, String> gsplSeat) {
        this.gsplSeat = gsplSeat;
    }

    public void setBatchNo(TableColumn<GetPhysicalCountOutData, String> batchNo) {
        this.batchNo = batchNo;
    }

    public void setGsppPriceNormal(TableColumn<GetPhysicalCountOutData, String> gsppPriceNormal) {
        this.gsppPriceNormal = gsppPriceNormal;
    }

    public void setVaild(TableColumn<GetPhysicalCountOutData, String> vaild) {
        this.vaild = vaild;
    }

    public void setGspcDate(TableColumn<GetPhysicalCountOutData, String> gspcDate) {
        this.gspcDate = gspcDate;
    }

    public void setGspcType(TableColumn<GetPhysicalCountOutData, String> gspcType) {
        this.gspcType = gspcType;
    }

    public void setStockQty(TableColumn<GetPhysicalCountOutData, String> stockQty) {
        this.stockQty = stockQty;
    }

    public void setGspcQty(TableColumn<GetPhysicalCountOutData, String> gspcQty) {
        this.gspcQty = gspcQty;
    }

    public void setGspcdDiffFirstQty(TableColumn<GetPhysicalCountOutData, String> gspcdDiffFirstQty) {
        this.gspcdDiffFirstQty = gspcdDiffFirstQty;
    }

    public void setGspcdPcSecondQty(TableColumn<GetPhysicalCountOutData, String> gspcdPcSecondQty) {
        this.gspcdPcSecondQty = gspcdPcSecondQty;
    }

    public void setProSpecs(TableColumn<GetPhysicalCountOutData, String> proSpecs) {
        this.proSpecs = proSpecs;
    }

    public void setProUnit(TableColumn<GetPhysicalCountOutData, String> proUnit) {
        this.proUnit = proUnit;
    }

    public void setProFactoryName(TableColumn<GetPhysicalCountOutData, String> proFactoryName) {
        this.proFactoryName = proFactoryName;
    }

    public void setProPlace(TableColumn<GetPhysicalCountOutData, String> proPlace) {
        this.proPlace = proPlace;
    }

    public void setGspcStatus(TableColumn<GetPhysicalCountOutData, String> gspcStatus) {
        this.gspcStatus = gspcStatus;
    }

    public void setObservableTableList(ObservableList<GetPhysicalCountOutData> observableTableList) {
        this.observableTableList = observableTableList;
    }

    public void setAllDataList(List<GetPhysicalCountOutData> allDataList) {
        this.allDataList = allDataList;
    }

    public void setTempDataList(List<GetPhysicalCountOutData> tempDataList) {
        this.tempDataList = tempDataList;
    }

    public void setTimer(Timer timer) {
        this.timer = timer;
    }

    public void setPhysicalCountController(PhysicalCountController physicalCountController) {
        this.physicalCountController = physicalCountController;
    }

    public void setChoosePhysicalProductController(ChoosePhysicalProductController choosePhysicalProductController) {
        this.choosePhysicalProductController = choosePhysicalProductController;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof AddPhysicalDiffController)) {
            return false;
        }
        AddPhysicalDiffController other = (AddPhysicalDiffController)o;
        if (!other.canEqual(this)) {
            return false;
        }
        AnchorPane this$anchorPane = this.getAnchorPane();
        AnchorPane other$anchorPane = other.getAnchorPane();
        if (this$anchorPane == null ? other$anchorPane != null : !this$anchorPane.equals(other$anchorPane)) {
            return false;
        }
        ScrollPane this$scrollPane = this.getScrollPane();
        ScrollPane other$scrollPane = other.getScrollPane();
        if (this$scrollPane == null ? other$scrollPane != null : !this$scrollPane.equals(other$scrollPane)) {
            return false;
        }
        VBox this$vBox = this.getVBox();
        VBox other$vBox = other.getVBox();
        if (this$vBox == null ? other$vBox != null : !this$vBox.equals(other$vBox)) {
            return false;
        }
        TextField this$searchProId = this.getSearchProId();
        TextField other$searchProId = other.getSearchProId();
        if (this$searchProId == null ? other$searchProId != null : !this$searchProId.equals(other$searchProId)) {
            return false;
        }
        TextField this$searchBatchNo = this.getSearchBatchNo();
        TextField other$searchBatchNo = other.getSearchBatchNo();
        if (this$searchBatchNo == null ? other$searchBatchNo != null : !this$searchBatchNo.equals(other$searchBatchNo)) {
            return false;
        }
        Button this$saveButton = this.getSaveButton();
        Button other$saveButton = other.getSaveButton();
        if (this$saveButton == null ? other$saveButton != null : !this$saveButton.equals(other$saveButton)) {
            return false;
        }
        TableView<GetPhysicalCountOutData> this$tableView = this.getTableView();
        TableView<GetPhysicalCountOutData> other$tableView = other.getTableView();
        if (this$tableView == null ? other$tableView != null : !this$tableView.equals(other$tableView)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, Integer> this$index = this.getIndex();
        TableColumn<GetPhysicalCountOutData, Integer> other$index = other.getIndex();
        if (this$index == null ? other$index != null : !this$index.equals(other$index)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gspcProId = this.getGspcProId();
        TableColumn<GetPhysicalCountOutData, String> other$gspcProId = other.getGspcProId();
        if (this$gspcProId == null ? other$gspcProId != null : !this$gspcProId.equals(other$gspcProId)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$proName = this.getProName();
        TableColumn<GetPhysicalCountOutData, String> other$proName = other.getProName();
        if (this$proName == null ? other$proName != null : !this$proName.equals(other$proName)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gsplArea = this.getGsplArea();
        TableColumn<GetPhysicalCountOutData, String> other$gsplArea = other.getGsplArea();
        if (this$gsplArea == null ? other$gsplArea != null : !this$gsplArea.equals(other$gsplArea)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gsplGroup = this.getGsplGroup();
        TableColumn<GetPhysicalCountOutData, String> other$gsplGroup = other.getGsplGroup();
        if (this$gsplGroup == null ? other$gsplGroup != null : !this$gsplGroup.equals(other$gsplGroup)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gsplShelf = this.getGsplShelf();
        TableColumn<GetPhysicalCountOutData, String> other$gsplShelf = other.getGsplShelf();
        if (this$gsplShelf == null ? other$gsplShelf != null : !this$gsplShelf.equals(other$gsplShelf)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gsplStorey = this.getGsplStorey();
        TableColumn<GetPhysicalCountOutData, String> other$gsplStorey = other.getGsplStorey();
        if (this$gsplStorey == null ? other$gsplStorey != null : !this$gsplStorey.equals(other$gsplStorey)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gsplSeat = this.getGsplSeat();
        TableColumn<GetPhysicalCountOutData, String> other$gsplSeat = other.getGsplSeat();
        if (this$gsplSeat == null ? other$gsplSeat != null : !this$gsplSeat.equals(other$gsplSeat)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$batchNo = this.getBatchNo();
        TableColumn<GetPhysicalCountOutData, String> other$batchNo = other.getBatchNo();
        if (this$batchNo == null ? other$batchNo != null : !this$batchNo.equals(other$batchNo)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gsppPriceNormal = this.getGsppPriceNormal();
        TableColumn<GetPhysicalCountOutData, String> other$gsppPriceNormal = other.getGsppPriceNormal();
        if (this$gsppPriceNormal == null ? other$gsppPriceNormal != null : !this$gsppPriceNormal.equals(other$gsppPriceNormal)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$vaild = this.getVaild();
        TableColumn<GetPhysicalCountOutData, String> other$vaild = other.getVaild();
        if (this$vaild == null ? other$vaild != null : !this$vaild.equals(other$vaild)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gspcDate = this.getGspcDate();
        TableColumn<GetPhysicalCountOutData, String> other$gspcDate = other.getGspcDate();
        if (this$gspcDate == null ? other$gspcDate != null : !this$gspcDate.equals(other$gspcDate)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gspcType = this.getGspcType();
        TableColumn<GetPhysicalCountOutData, String> other$gspcType = other.getGspcType();
        if (this$gspcType == null ? other$gspcType != null : !this$gspcType.equals(other$gspcType)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$stockQty = this.getStockQty();
        TableColumn<GetPhysicalCountOutData, String> other$stockQty = other.getStockQty();
        if (this$stockQty == null ? other$stockQty != null : !this$stockQty.equals(other$stockQty)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gspcQty = this.getGspcQty();
        TableColumn<GetPhysicalCountOutData, String> other$gspcQty = other.getGspcQty();
        if (this$gspcQty == null ? other$gspcQty != null : !this$gspcQty.equals(other$gspcQty)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gspcdDiffFirstQty = this.getGspcdDiffFirstQty();
        TableColumn<GetPhysicalCountOutData, String> other$gspcdDiffFirstQty = other.getGspcdDiffFirstQty();
        if (this$gspcdDiffFirstQty == null ? other$gspcdDiffFirstQty != null : !this$gspcdDiffFirstQty.equals(other$gspcdDiffFirstQty)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gspcdPcSecondQty = this.getGspcdPcSecondQty();
        TableColumn<GetPhysicalCountOutData, String> other$gspcdPcSecondQty = other.getGspcdPcSecondQty();
        if (this$gspcdPcSecondQty == null ? other$gspcdPcSecondQty != null : !this$gspcdPcSecondQty.equals(other$gspcdPcSecondQty)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$proSpecs = this.getProSpecs();
        TableColumn<GetPhysicalCountOutData, String> other$proSpecs = other.getProSpecs();
        if (this$proSpecs == null ? other$proSpecs != null : !this$proSpecs.equals(other$proSpecs)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$proUnit = this.getProUnit();
        TableColumn<GetPhysicalCountOutData, String> other$proUnit = other.getProUnit();
        if (this$proUnit == null ? other$proUnit != null : !this$proUnit.equals(other$proUnit)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$proFactoryName = this.getProFactoryName();
        TableColumn<GetPhysicalCountOutData, String> other$proFactoryName = other.getProFactoryName();
        if (this$proFactoryName == null ? other$proFactoryName != null : !this$proFactoryName.equals(other$proFactoryName)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$proPlace = this.getProPlace();
        TableColumn<GetPhysicalCountOutData, String> other$proPlace = other.getProPlace();
        if (this$proPlace == null ? other$proPlace != null : !this$proPlace.equals(other$proPlace)) {
            return false;
        }
        TableColumn<GetPhysicalCountOutData, String> this$gspcStatus = this.getGspcStatus();
        TableColumn<GetPhysicalCountOutData, String> other$gspcStatus = other.getGspcStatus();
        if (this$gspcStatus == null ? other$gspcStatus != null : !this$gspcStatus.equals(other$gspcStatus)) {
            return false;
        }
        ObservableList<GetPhysicalCountOutData> this$observableTableList = this.getObservableTableList();
        ObservableList<GetPhysicalCountOutData> other$observableTableList = other.getObservableTableList();
        if (this$observableTableList == null ? other$observableTableList != null : !this$observableTableList.equals(other$observableTableList)) {
            return false;
        }
        List<GetPhysicalCountOutData> this$allDataList = this.getAllDataList();
        List<GetPhysicalCountOutData> other$allDataList = other.getAllDataList();
        if (this$allDataList == null ? other$allDataList != null : !(this$allDataList).equals(other$allDataList)) {
            return false;
        }
        List<GetPhysicalCountOutData> this$tempDataList = this.getTempDataList();
        List<GetPhysicalCountOutData> other$tempDataList = other.getTempDataList();
        if (this$tempDataList == null ? other$tempDataList != null : !(this$tempDataList).equals(other$tempDataList)) {
            return false;
        }
        Timer this$timer = this.getTimer();
        Timer other$timer = other.getTimer();
        if (this$timer == null ? other$timer != null : !this$timer.equals(other$timer)) {
            return false;
        }
        PhysicalCountController this$physicalCountController = this.getPhysicalCountController();
        PhysicalCountController other$physicalCountController = other.getPhysicalCountController();
        if (this$physicalCountController == null ? other$physicalCountController != null : !(this$physicalCountController).equals(other$physicalCountController)) {
            return false;
        }
        ChoosePhysicalProductController this$choosePhysicalProductController = this.getChoosePhysicalProductController();
        ChoosePhysicalProductController other$choosePhysicalProductController = other.getChoosePhysicalProductController();
        return !(this$choosePhysicalProductController == null ? other$choosePhysicalProductController != null : !this$choosePhysicalProductController.equals(other$choosePhysicalProductController));
    }

    protected boolean canEqual(Object other) {
        return other instanceof AddPhysicalDiffController;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        AnchorPane $anchorPane = this.getAnchorPane();
        result = result * 59 + ($anchorPane == null ? 43 : $anchorPane.hashCode());
        ScrollPane $scrollPane = this.getScrollPane();
        result = result * 59 + ($scrollPane == null ? 43 : $scrollPane.hashCode());
        VBox $vBox = this.getVBox();
        result = result * 59 + ($vBox == null ? 43 : $vBox.hashCode());
        TextField $searchProId = this.getSearchProId();
        result = result * 59 + ($searchProId == null ? 43 : $searchProId.hashCode());
        TextField $searchBatchNo = this.getSearchBatchNo();
        result = result * 59 + ($searchBatchNo == null ? 43 : $searchBatchNo.hashCode());
        Button $saveButton = this.getSaveButton();
        result = result * 59 + ($saveButton == null ? 43 : $saveButton.hashCode());
        TableView<GetPhysicalCountOutData> $tableView = this.getTableView();
        result = result * 59 + ($tableView == null ? 43 : $tableView.hashCode());
        TableColumn<GetPhysicalCountOutData, Integer> $index = this.getIndex();
        result = result * 59 + ($index == null ? 43 : $index.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gspcProId = this.getGspcProId();
        result = result * 59 + ($gspcProId == null ? 43 : $gspcProId.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $proName = this.getProName();
        result = result * 59 + ($proName == null ? 43 : $proName.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gsplArea = this.getGsplArea();
        result = result * 59 + ($gsplArea == null ? 43 : $gsplArea.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gsplGroup = this.getGsplGroup();
        result = result * 59 + ($gsplGroup == null ? 43 : $gsplGroup.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gsplShelf = this.getGsplShelf();
        result = result * 59 + ($gsplShelf == null ? 43 : $gsplShelf.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gsplStorey = this.getGsplStorey();
        result = result * 59 + ($gsplStorey == null ? 43 : $gsplStorey.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gsplSeat = this.getGsplSeat();
        result = result * 59 + ($gsplSeat == null ? 43 : $gsplSeat.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $batchNo = this.getBatchNo();
        result = result * 59 + ($batchNo == null ? 43 : $batchNo.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gsppPriceNormal = this.getGsppPriceNormal();
        result = result * 59 + ($gsppPriceNormal == null ? 43 : $gsppPriceNormal.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $vaild = this.getVaild();
        result = result * 59 + ($vaild == null ? 43 : $vaild.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gspcDate = this.getGspcDate();
        result = result * 59 + ($gspcDate == null ? 43 : $gspcDate.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gspcType = this.getGspcType();
        result = result * 59 + ($gspcType == null ? 43 : $gspcType.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $stockQty = this.getStockQty();
        result = result * 59 + ($stockQty == null ? 43 : $stockQty.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gspcQty = this.getGspcQty();
        result = result * 59 + ($gspcQty == null ? 43 : $gspcQty.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gspcdDiffFirstQty = this.getGspcdDiffFirstQty();
        result = result * 59 + ($gspcdDiffFirstQty == null ? 43 : $gspcdDiffFirstQty.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gspcdPcSecondQty = this.getGspcdPcSecondQty();
        result = result * 59 + ($gspcdPcSecondQty == null ? 43 : $gspcdPcSecondQty.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $proSpecs = this.getProSpecs();
        result = result * 59 + ($proSpecs == null ? 43 : $proSpecs.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $proUnit = this.getProUnit();
        result = result * 59 + ($proUnit == null ? 43 : $proUnit.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $proFactoryName = this.getProFactoryName();
        result = result * 59 + ($proFactoryName == null ? 43 : $proFactoryName.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $proPlace = this.getProPlace();
        result = result * 59 + ($proPlace == null ? 43 : $proPlace.hashCode());
        TableColumn<GetPhysicalCountOutData, String> $gspcStatus = this.getGspcStatus();
        result = result * 59 + ($gspcStatus == null ? 43 : $gspcStatus.hashCode());
        ObservableList<GetPhysicalCountOutData> $observableTableList = this.getObservableTableList();
        result = result * 59 + ($observableTableList == null ? 43 : $observableTableList.hashCode());
        List<GetPhysicalCountOutData> $allDataList = this.getAllDataList();
        result = result * 59 + ($allDataList == null ? 43 : ($allDataList).hashCode());
        List<GetPhysicalCountOutData> $tempDataList = this.getTempDataList();
        result = result * 59 + ($tempDataList == null ? 43 : ($tempDataList).hashCode());
        Timer $timer = this.getTimer();
        result = result * 59 + ($timer == null ? 43 : $timer.hashCode());
        PhysicalCountController $physicalCountController = this.getPhysicalCountController();
        result = result * 59 + ($physicalCountController == null ? 43 : ($physicalCountController).hashCode());
        ChoosePhysicalProductController $choosePhysicalProductController = this.getChoosePhysicalProductController();
        result = result * 59 + ($choosePhysicalProductController == null ? 43 : $choosePhysicalProductController.hashCode());
        return result;
    }

    public String toString() {
        return "AddPhysicalDiffController(anchorPane=" + this.getAnchorPane() + ", scrollPane=" + this.getScrollPane() + ", vBox=" + this.getVBox() + ", searchProId=" + this.getSearchProId() + ", searchBatchNo=" + this.getSearchBatchNo() + ", saveButton=" + this.getSaveButton() + ", tableView=" + this.getTableView() + ", index=" + this.getIndex() + ", gspcProId=" + this.getGspcProId() + ", proName=" + this.getProName() + ", gsplArea=" + this.getGsplArea() + ", gsplGroup=" + this.getGsplGroup() + ", gsplShelf=" + this.getGsplShelf() + ", gsplStorey=" + this.getGsplStorey() + ", gsplSeat=" + this.getGsplSeat() + ", batchNo=" + this.getBatchNo() + ", gsppPriceNormal=" + this.getGsppPriceNormal() + ", vaild=" + this.getVaild() + ", gspcDate=" + this.getGspcDate() + ", gspcType=" + this.getGspcType() + ", stockQty=" + this.getStockQty() + ", gspcQty=" + this.getGspcQty() + ", gspcdDiffFirstQty=" + this.getGspcdDiffFirstQty() + ", gspcdPcSecondQty=" + this.getGspcdPcSecondQty() + ", proSpecs=" + this.getProSpecs() + ", proUnit=" + this.getProUnit() + ", proFactoryName=" + this.getProFactoryName() + ", proPlace=" + this.getProPlace() + ", gspcStatus=" + this.getGspcStatus() + ", observableTableList=" + this.getObservableTableList() + ", allDataList=" + this.getAllDataList() + ", tempDataList=" + this.getTempDataList() + ", timer=" + this.getTimer() + ", physicalCountController=" + this.getPhysicalCountController() + ", choosePhysicalProductController=" + this.getChoosePhysicalProductController() + ")";
    }
}

